package com.controladores.controlvehicular;
import com.controladores.controlvehicular.R;
import com.controladores.controlvehicular.comunicacion.ComunicacionTCP;
import com.controladores.controlvehicular.controlador.Posicion;

import java.io.File;
import java.io.FilenameFilter;
import java.util.Calendar;

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.TabListener;

import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.widget.SearchView;
import com.actionbarsherlock.widget.SearchView.OnQueryTextListener;
import com.controladores.controlvehicular.basededatos.GestorBaseDatos;

import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;

import android.app.AlertDialog;
import android.app.NotificationManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Toast;

public class ZonasControl extends SherlockFragmentActivity implements
		TabListener, OnQueryTextListener {
	// private Button zona1, zona2, zona3, zona4;
	// protected TextView fuenteZona;
	// public static Activity znc;
	Context c;
	int horaSistema;
	private SearchView mSearchView;
	private MenuItem refreshMenuItem;
	private String cadena;
	private String valor = "";
	SyncData sd;
	ComunicacionTCP comunicacionSicronizacion = new ComunicacionTCP();
	private String datosSicronizar = "";
	String envio="";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_zonas_control);

		// + ":" + c.get(Calendar.MINUTE);

		// fuenteZona = (TextView) findViewById(R.id.edSubZona1);
		// Typeface tipofuenteZona = Typeface.createFromAsset(getAssets(),
		// "inkedgod.ttf");
		// fuenteZona.setTypeface(tipofuenteZona);
		// zona1 = (Button) findViewById(R.id.bzona1);
		// Typeface tipoletraZona = Typeface.createFromAsset(getAssets(),
		// "gloriahallelujah.ttf");
		// zona1.setTypeface(tipoletraZona);
		// zona2=(Button) findViewById(R.id.bzona2);
		// zona2.setTypeface(tipoletraZona);
		// zona3=(Button) findViewById(R.id.bzona3);
		// zona3.setTypeface(tipoletraZona);
		// zona4=(Button) findViewById(R.id.bzona4);
		// zona4.setTypeface(tipoletraZona);
		// zona1.setOnClickListener(this);
		// zona2.setOnClickListener(this);
		// zona3.setOnClickListener(this);
		// zona4.setOnClickListener(this);
		// znc=this;

		// zona1.getBackground().setColorFilter(Color.BLUE,PorterDuff.Mode.MULTIPLY
		// );
		//

		ActionBar bar = getSupportActionBar(); // sin Sherlock seria
												// getActionBar()

		// Creamos tantas tabs como vayamos a necesitar
		ActionBar.Tab tab1 = bar.newTab();
		ActionBar.Tab tab2 = bar.newTab();
		ActionBar.Tab tab3 = bar.newTab();
		ActionBar.Tab tab4 = bar.newTab();

		// asignamos una etiqueta (setText) y una identificacion (setTag) a cada
		// una.
		tab1.setText("Zona 1");
		tab1.setIcon(R.drawable.ic_4_collections_go_to_today);
		tab1.setTag("Zona 1");
		tab1.setTabListener(this);

		tab2.setText("Zona 2");
		tab2.setTag("Zona 2");
		tab2.setIcon(R.drawable.ic_4_collections_go_to_today);
		tab2.setTabListener(this);

		tab3.setText("Zona 3");
		tab3.setTag("Zona 3");
		tab3.setIcon(R.drawable.ic_4_collections_go_to_today);
		tab3.setTabListener(this);

		tab4.setText("Zona 4");
		tab4.setTag("Zona 4");
		tab4.setIcon(R.drawable.ic_4_collections_go_to_today);
		tab4.setTabListener(this);
		// tab4.setBackgroundColor(Color.parseColor("#FF0000"));

		// Se puede asignar un icono a cada pestana con tab1.setIcon(Drawable
		// icon)

		// anadimos el Listener para cuando activemos las tabs
		tab1.setTabListener(this);

		// con todo listo, asignamos las tabs a la barra
		bar.addTab(tab1);
		bar.addTab(tab2);
		bar.addTab(tab3);
		bar.addTab(tab4);

		// activar el modo de navegacion por pestanas,
		// mejor al final, para que no de problemas al rotar
		bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

	}

	@Override
	public void onTabSelected(com.actionbarsherlock.app.ActionBar.Tab tab,
			android.support.v4.app.FragmentTransaction ft) {
		// TODO Auto-generated method stub
		String tag = (String) tab.getTag();
		Log.d("TabTutorial", "Elegido tab con tag: " + tag);
		// Creamos un Fragment nuevo (con new Fragment) del tipo adecuado segun
		// la eleccion
		// y reemplazamos lo que hubiera antes usando
		// el metodo replace del FragmentTransition que recibe este metodo
		if (tag.equalsIgnoreCase("Zona 1")) {
			// Zona frag = new Zona();
			// ft.replace(android.R.id.content, frag);
			try {
				Calendar c = Calendar.getInstance();
				horaSistema = c.get(Calendar.HOUR_OF_DAY);
				GestorBaseDatos manejador = new GestorBaseDatos(
						ZonasControl.this);
				manejador.abrirBaseDatos();
				String horaInicio = "";
				horaInicio = manejador.consultarHoraInicio1();
				String desHoraI[] = descomposeT(horaInicio, ":");
				int horaI = Integer.parseInt(desHoraI[0]);
				String horaFinal = "";
				horaFinal = manejador.consultarHoraFinal1();
				String desHoraF[] = descomposeT(horaFinal, ":");
				int horaF = Integer.parseInt(desHoraF[0]);
				manejador.close();
				System.out.println("hora inicial" + horaI + " hora final"
						+ horaF + " hora sistema " + horaSistema);
				// if (horaSistema >= horaI && horaSistema <= horaF) {
				// Zona2 aZona2 = new Zona2();
				// ft.replace(android.R.id.content, aZona2);
				Zona aZona1 = new Zona();
				ft.replace(android.R.id.content, aZona1);
				Toast.makeText(getBaseContext(), "corecto", Toast.LENGTH_LONG)
						.show();
				// }
				// if (horaSistema < horaI || horaSistema > horaF) {
				// ZonaNoAsignada f = new ZonaNoAsignada();
				// ft.replace(android.R.id.content, f);

				// }
			} catch (Exception e) {
				// TODO: handle exception
				ZonaNoAsignada fra = new ZonaNoAsignada();
				ft.replace(android.R.id.content, fra);
			}
		} else if (tag.equalsIgnoreCase("Zona 2")) {
			// try {
			// GestorBaseDatos manejador = new
			// GestorBaseDatos(ZonasControl.this);
			// manejador.abrirBaseDatos();
			// String nombreZona ="";
			// nombreZona= manejador.consultarZona2();
			// manejador.close();
			// if (nombreZona.compareTo("")!=0) {
			// Zona2 aZona2 = new Zona2();
			// ft.replace(android.R.id.content, aZona2);
			// Toast.makeText(getBaseContext(), "corecto",
			// Toast.LENGTH_LONG).show();
			//
			// }
			// if (nombreZona.compareTo("")==0) {
			// ZonaNoAsignada frag = new ZonaNoAsignada ();
			// ft.replace(android.R.id.content, frag);
			// }
			try {
				Calendar c = Calendar.getInstance();
				horaSistema = c.get(Calendar.HOUR_OF_DAY);
				GestorBaseDatos manejador = new GestorBaseDatos(
						ZonasControl.this);
				manejador.abrirBaseDatos();
				String horaInicio = "";
				horaInicio = manejador.consultarHoraInicio2();
				String desHoraI[] = descomposeT(horaInicio, ":");
				int horaI = Integer.parseInt(desHoraI[0]);
				String horaFinal = "";
				horaFinal = manejador.consultarHoraFinal2();
				String desHoraF[] = descomposeT(horaFinal, ":");
				int horaF = Integer.parseInt(desHoraF[0]);
				manejador.close();
				System.out.println("hora inicial" + horaI + " hora final"
						+ horaF + " hora sistema " + horaSistema);
				if (horaSistema >= horaI && horaSistema <= horaF) {
					Zona2 aZona2 = new Zona2();
					ft.replace(android.R.id.content, aZona2);
					Toast.makeText(getBaseContext(), "corecto",
							Toast.LENGTH_LONG).show();
				}
				if (horaSistema < horaI || horaSistema > horaF) {
					ZonaNoAsignada frag = new ZonaNoAsignada();
					ft.replace(android.R.id.content, frag);
				}
			} catch (Exception e) {
				// TODO: handle exception
				ZonaNoAsignada frag = new ZonaNoAsignada();
				ft.replace(android.R.id.content, frag);
			}
		} else if (tag.equalsIgnoreCase("Zona 3")) {
			try {
				Calendar c = Calendar.getInstance();
				horaSistema = c.get(Calendar.HOUR_OF_DAY);
				GestorBaseDatos manejador = new GestorBaseDatos(
						ZonasControl.this);
				manejador.abrirBaseDatos();
				String horaInicio = "";
				horaInicio = manejador.consultarHoraInicioZona3();
				String desHoraI[] = descomposeT(horaInicio, ":");
				int horaI = Integer.parseInt(desHoraI[0]);
				String horaFinal = "";
				horaFinal = manejador.consultarHoraFinalZona3();
				String desHoraF[] = descomposeT(horaFinal, ":");
				int horaF = Integer.parseInt(desHoraF[0]);
				manejador.close();
				System.out.println("hora inicial" + horaI + " hora final"
						+ horaF + " hora sistema " + horaSistema);
				if (horaSistema >= horaI && horaSistema <= horaF) {
					Zona3 aZona3 = new Zona3();
					ft.replace(android.R.id.content, aZona3);
					Toast.makeText(getBaseContext(), "corecto",
							Toast.LENGTH_LONG).show();
				}
				if (horaSistema < horaI || horaSistema > horaF) {
					ZonaNoAsignada frag = new ZonaNoAsignada();
					ft.replace(android.R.id.content, frag);
				}
			} catch (Exception e) {
				// TODO: handle exception
				ZonaNoAsignada frag = new ZonaNoAsignada();
				ft.replace(android.R.id.content, frag);
			}

		} else if (tag.equalsIgnoreCase("Zona 4")) {
			try {
				Calendar c = Calendar.getInstance();
				horaSistema = c.get(Calendar.HOUR_OF_DAY);
				GestorBaseDatos manejador = new GestorBaseDatos(
						ZonasControl.this);
				manejador.abrirBaseDatos();
				String horaInicio = "";
				horaInicio = manejador.consultarHoraInicio4();
				String desHoraI[] = descomposeT(horaInicio, ":");
				int horaI = Integer.parseInt(desHoraI[0]);
				String horaFinal = "";
				horaFinal = manejador.consultarHoraFinal4();
				String desHoraF[] = descomposeT(horaFinal, ":");
				int horaF = Integer.parseInt(desHoraF[0]);
				manejador.close();
				System.out.println("hora inicial" + horaI + " hora final"
						+ horaF + " hora sistema " + horaSistema);
				if (horaSistema >= horaI && horaSistema <= horaF) {
					Zona4 aZona4 = new Zona4();
					ft.replace(android.R.id.content, aZona4);
					Toast.makeText(getBaseContext(), "corecto",
							Toast.LENGTH_LONG).show();
				}
				if (horaSistema < horaI || horaSistema > horaF) {
					ZonaNoAsignada frag = new ZonaNoAsignada();
					ft.replace(android.R.id.content, frag);
				}
			} catch (Exception e) {
				// TODO: handle exception
				ZonaNoAsignada frag = new ZonaNoAsignada();
				ft.replace(android.R.id.content, frag);

			}
		} else {
			Log.w("TabTutorial", "tag de tab no registrada: " + tag);
		}
	}

	@Override
	public void onTabUnselected(com.actionbarsherlock.app.ActionBar.Tab tab,
			android.support.v4.app.FragmentTransaction ft) {
		// TODO Auto-generated method stub

	}

	@Override
	public void onTabReselected(com.actionbarsherlock.app.ActionBar.Tab tab,
			android.support.v4.app.FragmentTransaction ft) {
		// TODO Auto-generated method stub

	}

	// @Override
	// public void onClick(View v) {
	// TODO Auto-generated method stub
	// switch (v.getId()) {
	// case //R.id.bzona1:
	// Intent aZona = new Intent(ZonasControl.this,
	// Zona.class);
	// startActivity(aZona);

	// overridePendingTransition(R.anim.escalar, R.anim.escalar);
	// break;
	// }

	// }

	@Override
	public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
		MenuInflater inflater = getSupportMenuInflater();
		inflater.inflate(R.menu.zonas_control, menu);

		MenuItem searchItem = menu.findItem(R.id.action_search);
		mSearchView = (SearchView) searchItem.getActionView();
		mSearchView.setQueryHint("Buscar");
		mSearchView.setOnQueryTextListener(this);

		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onQueryTextChange(String newText) {

		// Toast.makeText(this, newText, Toast.LENGTH_SHORT).show();

		return false;
	}

	@Override
	public boolean onQueryTextSubmit(String text) {
		// Toast.makeText(this, "Searching for " + text,
		// Toast.LENGTH_LONG).show();
		ListadoArchivos listadoArchivos = new ListadoArchivos();
		cadena = text;
		// File root = Environment.getExternalStorageDirectory();
		// File dir = new File(root + "/Android/data");sdcard/DCIM/Camera/
		String[] listado = listadoArchivos
				.devolverListadoArchivosDirectorios("sdcard/DCIM/Camera/"/*
																				 * ruta
																				 * en
																				 * la
																				 * que
																				 * se
																				 * buscar??n
																				 * los
																				 * archivos
																				 * /
																				 * directorios
																				 * ,
																				 * en
																				 * este
																				 * caso
																				 * en
																				 * la
																				 * tarjeta
																				 * de
																				 * memoria
																				 * .
																				 */);
		StringBuilder listadoCompleto = new StringBuilder();
		for (int i = 0; i < listado.length; i++) { // Recorremos con un bucle
													// desde 0 hasta el numero
													// de elementos -1 que
													// contenga el array.

			listadoCompleto.append(listado[i].toString());// Concatenamos los
															// archivos/directorios
															// encontrados
			// listadoCompleto.append("-");//A??adimos tambi??n un - para separar
			// el nombre de los archivos/directorios encontrados

		}
		String x = listadoCompleto.toString();
		System.out.println(x);
		System.out.println("cadena" + cadena);
		String[] datosConexion = descompose(x);
		String nombre = datosConexion[0];

		System.out.println(nombre);
		// System.out.println("cadena"+cadena);
		// String valor =cadena+"-";
		if (cadena.compareTo(nombre) == 0) {
			Toast.makeText(getBaseContext(), listadoCompleto.toString(),
					Toast.LENGTH_LONG).show();
			// File musicFile2Play = new File("/sdcard/some_file.mp3");
			File musicFile2Play = new File("sdcard/DCIM/Camera/"
					+ nombre + ".jpg");
			Intent i2 = new Intent();
			i2.setAction(android.content.Intent.ACTION_VIEW);
			i2.setDataAndType(Uri.fromFile(musicFile2Play), "image/jpg");
			startActivity(i2);

		} else {
			//Toast.makeText(getBaseContext(), "Archivo no existe",
			//		Toast.LENGTH_LONG).show();
			String titulo="Error al buscar la evidencia";
			String mensaje="No se ha encontrado la evidencia. Por favor verifica que el c??digo ingresado sea el correcto.";
			menuAlertaInexistenciaDatos(titulo,mensaje);

		}

		// tvListadoDirectorios.setText(listadoCompleto.toString());
		return false;
	}

	public class ListadoArchivos {
		// Al m???todo le pasamos el directorio donde vamos a buscar todos los
		// archivos/directorios que tenga.
		public String[] devolverListadoArchivosDirectorios(
				String directorioPrincipal) {

			/*
			 * Para hacer una b???squeda selectiva en el list instanciamos a la
			 * clase SoloIm???genes, que ser??? la encargada de mostrar los archivos
			 * que tengan en su nombre los filtros de b???squeda indicados
			 */
			String[] archivos = new File(directorioPrincipal)
					.list(new Filtro());

			// Para guardar en el array todos los archivos/directorios
			// encontrados de la ruta indicada sin tener en cuenta el filtro.
			// String[] archivos = new File(directorioPrincipal).list();

			// Devuelve el array de String con los archivos/directorios
			// encontrados en la b???squeda.
			return archivos;
		}
	}

	public class Filtro implements FilenameFilter {
		@Override
		public boolean accept(File directorio, String nombreArchivo) {
			/*
			 * Devuelve true si el final del archivo coincide con alguna de las
			 * extensiones que le indicamos, en caso contrario devuelve false y
			 * no se tiene en cuenta el archivo
			 */
			// ZonasControl z= new ZonasControl();

			if (nombreArchivo.endsWith(".bmp")
					|| nombreArchivo.endsWith(cadena + ".jpg")
					|| nombreArchivo.endsWith(".png")
					|| nombreArchivo.endsWith(".gif"))
				return true;

			return false;
		}
	}

	public String[] descompose(String trama) {
		String[] elementos = trama.split("\\.");
		return elementos;
	}

	public String[] descomposeT(String trama, String separador) {
		String[] elementos = trama.split(separador);
		return elementos;
	}

	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if (keyCode == KeyEvent.KEYCODE_BACK) {
			moveTaskToBack(true);
			return true;
		}
		return super.onKeyDown(keyCode, event);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		switch (item.getItemId()) {
		case R.id.action_refresh:
			// refresh
			refreshMenuItem = item;
			// lzoad the data from server
			//new SyncData().execute();
			sd = new SyncData();
			sd.execute();
			return true;

		case R.id.verHorario:
			Intent horario = new Intent(getApplicationContext(),
					HorarioTrabajo.class);
			startActivity(horario);

			break;
		case R.id.verMapa:
			Intent localizacion = new Intent(getApplicationContext(),
					Localizacion.class);
			String mostrarM = "Mostrar mapa";
			localizacion.putExtra("MostrarMapa", mostrarM);
			startActivity(localizacion);
			break;
		case R.id.menu_CerrarSeccion:
			/*
			 * try { Calendar c = Calendar.getInstance(); horaSistema =
			 * c.get(Calendar.HOUR_OF_DAY); GestorBaseDatos manejador = new
			 * GestorBaseDatos( ZonasControl.this); manejador.abrirBaseDatos();
			 * String horaInicio = ""; horaInicio =
			 * manejador.consultarHoraInicio1(); String desHoraI[] =
			 * descomposeT(horaInicio, ":"); int horaI =
			 * Integer.parseInt(desHoraI[0]); String horaFinal = ""; horaFinal =
			 * manejador.consultarHoraFinal4(); String desHoraF[] =
			 * descomposeT(horaFinal, ":"); int horaF =
			 * Integer.parseInt(desHoraF[0]); manejador.close();
			 * System.out.println("hora inicial" + horaI + " hora final" + horaF
			 * + " hora sistema " + horaSistema); if (horaSistema >= horaI &&
			 * horaSistema <= horaF) { //Zona4 aZona4 = new Zona4();
			 * //ft.replace(android.R.id.content, aZona4);
			 * 
			 * Toast.makeText(getBaseContext(),
			 * "corecto Aqui se cierra secci??n", Toast.LENGTH_LONG).show(); } if
			 * (horaSistema < horaI || horaSistema > horaF) { Zona z = new
			 * Zona(); z.closeZona1(); Main s = new Main(); s.finish(); Intent i
			 * = new Intent(getApplicationContext(), InicioSesion.class);
			 * startActivity(i); finish(); //ZonaNoAsignada frag = new
			 * ZonaNoAsignada(); //ft.replace(android.R.id.content, frag);
			 * 
			 * } } catch (Exception e) { // TODO: handle exception
			 * //ZonaNoAsignada frag = new ZonaNoAsignada();
			 * //ft.replace(android.R.id.content, frag);
			 * Toast.makeText(getBaseContext(),
			 * "Se produjo un error "+e,Toast.LENGTH_SHORT).show();
			 * 
			 * }
			 */

			String titulo="Cerrar Sesión";
			String descripcion="Esta seguro de cerrar la sesión, los datos se borraran permanentemente.";
			menuSalir(titulo,descripcion);

			break;
		case R.id.menu_SalirAplicacion:

			String tituloCerrarAplicacion ="Cerrar Aplicación";
			String descripcionCerrarAplicacion="Esta seguro de cerrar la aplicación. El control de la ubicación se seguirá realizando.";
			menuSalir(tituloCerrarAplicacion,descripcionCerrarAplicacion);

			break;

		}
		return super.onOptionsItemSelected(item);

	}

	public void cerrarSesion() {
		String valor = "";
		GestorBaseDatos sesion = new GestorBaseDatos(ZonasControl.this);
		sesion.abrirBaseDatos();
		String datoUsuario = sesion.consultarUsuarioSesion();
		sesion.close();
		ComunicacionTCP comunicacion = new ComunicacionTCP();
		valor = comunicacion.gestionCerrarSesion(datoUsuario, "1");
		if (valor.compareToIgnoreCase("e") == 0) {
			menuConexionFallidaCerrarSesion();
		}
		if (valor.compareToIgnoreCase("1") == 0) {
			Zona z = new Zona();
			z.closeZona1();
			Zona2 zona2 = new Zona2();
			zona2.cerrarHilosEnEjecucionZona2();
			Zona3 zona3 = new Zona3();
			zona3.cerrarHilosEnEjecucionZona3();
			Zona4 zona4 = new Zona4();
			zona4.cerrarHilosEnEjecucionZona4();
			Intent i = new Intent(getApplicationContext(), InicioSesion.class);
			startActivity(i);
			NotificationManager notificador = Posicion
					.obtenerNotificacion();
			notificador.cancelAll();
			Toast.makeText(getBaseContext(),
					"La Sesión se ha cerrado corectamente", Toast.LENGTH_LONG)
					.show();
		}
	}
	private void menuConexionFallidaCerrarSesion() {
		AlertDialog selecRegistro = new AlertDialog.Builder(ZonasControl.this)
				.create();
		selecRegistro.setTitle("Conexión Fallida");
		selecRegistro
				.setMessage("Los Datos no fueron enviados. Desea intentar de nuevo");
		selecRegistro.setButton("Si", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				cerrarSesion();
			}
		});
		selecRegistro.setButton2("No", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
			}
		});

		selecRegistro.show();
	}

	private void menuConexionFallidaSicronizacion() {
		AlertDialog selecRegistro = new AlertDialog.Builder(ZonasControl.this)
				.create();
		selecRegistro.setTitle("Conexión Fallida");
		selecRegistro
				.setMessage("Los Datos no fueron enviados. Desea intentar de nuevo");
		selecRegistro.setButton("Si", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				//refreshMenuItem = item;
				// load the data from server
				sd.cancel(true);
				sd = new SyncData();
				sd.execute();
			}
		});
		selecRegistro.setButton2("No", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				sd.cancel(true);
			}
		});
		selecRegistro.show();
	}
	/**
	 * Async task to load the data from server
	 * **/
	private class SyncData extends AsyncTask<String, Void, String> {
		@Override
		protected void onPreExecute() {
			// set the progress bar view
			refreshMenuItem.setActionView(R.layout.action_progressbar);
			refreshMenuItem.expandActionView();
			System.out.println("entro a espera");
			//ArrayList<String> coordenadasZonas = new ArrayList<String>();
			try {
			GestorBaseDatos manejador1 = new GestorBaseDatos(
					ZonasControl.this);
			manejador1.abrirBaseDatos();
			int sicronizar=0;
			//String horaInicio =manejador1.obtenerhoraInicioGeocerca(id);s
			//System.out.println("Hora Inicio " +horaInicio);			
			datosSicronizar=manejador1.multasSicronizar(sicronizar);
			manejador1.close();
			//##;013;nombreUsuario;nombreZona;idSubcalle;fecha;hora;placa;codigo;nombrecliente;id tipo de multa;*d
			//System.out.println("datos de consulta sicronizacion "+ datosSicronizar);
			String tramaSocronizacion=datosSicronizar.substring(0,datosSicronizar.length()-1);
			System.out.println("datos de consulta sicronizacion "+ tramaSocronizacion);
			valor = comunicacionSicronizacion.SicronizarMultas(datosSicronizar);
			if (valor.compareToIgnoreCase("e") == 0) {
				//menuConexionFallidaSicronizacion();
				envio="0";
			}
			if (valor.compareToIgnoreCase("1") == 0) {
				envio="1";
				Toast.makeText(getBaseContext(),
						"La Datos se han sicronizado satisfactoriamente", Toast.LENGTH_LONG)
						.show();		
			}else {
				menuConexionFallidaSicronizacion();
			}
			} catch (Exception e) {
				String titulo="Sicronización";
				String mensaje="No existen Multas a sicronizar";
				menuAlertaInexistenciaDatos(titulo,mensaje);
				//Toast.makeText(getBaseContext(), "No existe multas a Sicronizar", Toast.LENGTH_LONG).show();
			}
			//String puntos[] = datosSicronizar.split(";");
			//for(int i=0; i<puntos.length; i++){
			//	coordenadasZonas.add(puntos[i]);
			//}
			//System.out.println("tama??o lista puntos metodo "+coordenadasZonas.size());
		}
		@Override
		protected String doInBackground(String... params) {
			// not making real request in this demo
			// for now we use a timer to wait for sometime
			try {
				Thread.sleep(9000);
				
			} catch (InterruptedException e) {
				e.printStackTrace();
			} finally {
				System.out.println("Salio de espera");
				if(envio.compareTo("0")==0){
					Toast.makeText(getBaseContext(),
							"La Datos no se Sicronizaron", Toast.LENGTH_LONG)
							.show();
				}				
			}
			return null;
		}
		@Override
		protected void onPostExecute(String result) {
			refreshMenuItem.collapseActionView();
			// remove the progress bar view
			refreshMenuItem.setActionView(null);
		}
	};
	private void menuAlertaInexistenciaDatos(String titulo,String mensaje) {
		AlertDialog selecRegistro = new AlertDialog.Builder(ZonasControl.this)
				.create();
		selecRegistro.setTitle(titulo);
		selecRegistro
				.setMessage(mensaje);
		selecRegistro.setButton("Aceptar", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				//refreshMenuItem = item;
				// load the data from server	
			}
		});
		selecRegistro.show();
	}
	private void menuSalir(final String titulo,String mensaje) {
		AlertDialog selecRegistro = new AlertDialog.Builder(ZonasControl.this)
				.create();
		selecRegistro.setTitle(titulo);
		selecRegistro
				.setMessage(mensaje);
		selecRegistro.setButton("Si", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {

				if (titulo.compareTo("Cerrar Sesión")==0) {
					cerrarSesion();	
				}
				if (titulo.compareTo("Cerrar Aplicación")==0) {
					Zona z = new Zona();
					z.cerrarAplicacion();
					Intent salirAplicacion = new Intent(getApplicationContext(),
							InicioSesion.class);
					startActivity(salirAplicacion);
					moveTaskToBack(true);
				}
			}
		});
		selecRegistro.setButton2("No", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				//refreshMenuItem = item;
				// load the data from server
				
			}
		});
		selecRegistro.show();
	}
}
